有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java Date作为MyBatis中Oracle SELECT查询的参数[not get Response]

我有一个类似的问题

Java Date as Parameter for Oracle SELECT query in MyBatis

但那个问题并没有得到回答,我确实在那个里发了帖子,还并没有收到回复。我的很相似,如果我去掉日期过滤器,它会工作得很好

myBatis版本myBatis spring boot starter v1。3.2[认为不能升级]

我的映射器xml如下所示

<mapper namespace="com.wind2.schedulerworker.dw.mapper.ProductBetlineReportMapper">
    <resultMap id="productBetlineReportMap" type="ProductBetlineReport">
        <id column="REPORT_DRAW_DATE" property="reportDrawDate" jdbcType="DATE" />
        <id column="DRAW_DATE" property="drawDate" javaType="java.util.Date" jdbcType="DATE" />
        <id column="PBID" property="pbid" jdbcType="VARCHAR" />
        <result column="PRODUCT_CHANNEL" property="productChannel" jdbcType="VARCHAR" />
    </resultMap>

<select id="selectProductBetlineReportCreated" resultMap="productBetlineReportMap" parameterType="java.util.List">
    <foreach item="item" index="index" collection="productBetlineList" separator="union all">
        SELECT REPORT_DRAW_DATE, PBID, DRAW_DATE FROM PRODUCT_BET_LINE_REPORT_CREATED
        WHERE PBID = #{item.pbid} AND DRAW_DATE = #{item.drawDate}
    </foreach>
</select>

</mapper>

我的java类如下,我使用java。util。日期

import java.util.Date;

public class ProductBetline {
    ....
    private Date drawDate;
    ....
}

我在互联网上做了很多故障排除和搜索,如果我将xml条件更改为{item.drawDate}>,我确实得到了返回结果;绘制日期,但我想要的是“=”。我不确定它是否也有时间戳问题,但当我选择返回输入日期时,我将其与db日期相同。例如,2019年7月24日00:00:00(来自oracle db)和2019年7月24日00:00:00(来自java输入)。我不确定是年份和日期的倒转导致了问题还是什么(将日期视为年份或年份视为日期),但似乎不是这样,因为如果是这样的话,我的陈述将是不正确的

感谢任何能帮助我的人。我花了几个小时来解决这个问题。提前谢谢


共 (0) 个答案